package com.ruralflow.population.service;

import java.util.List;
import com.ruralflow.population.domain.Population;
import com.ruralflow.population.domain.vo.PopulationRespVO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 流动人口信息Service接口
 * 
 * @author ruralflow
 * @date 2025-02-15
 */
public interface IPopulationService 
{
    /**
     * 查询流动人口信息
     * 
     * @param populationId 流动人口信息主键
     * @return 流动人口信息
     */
    public Population selectPopulationByPopulationId(Long populationId);

    /**
     * 查询流动人口信息列表
     * 
     * @param population 流动人口信息
     * @return 流动人口信息集合
     */
    public List<Population> selectPopulationList(Population population);

    /**
     * 新增流动人口信息
     * 
     * @param population 流动人口信息
     * @return 结果
     */
    public int insertPopulation(Population population);

    /**
     * 修改流动人口信息
     * 
     * @param population 流动人口信息
     * @return 结果
     */
    public int updatePopulation(Population population);

    /**
     * 批量删除流动人口信息
     * 
     * @param populationIds 需要删除的流动人口信息主键集合
     * @return 结果
     */
    public int deletePopulationByPopulationIds(Long[] populationIds);

    /**
     * 删除流动人口信息信息
     * 
     * @param populationId 流动人口信息主键
     * @return 结果
     */
    public int deletePopulationByPopulationId(Long populationId);

    /**
     * 查询流动人口信息总数
     * @return
     */
    Integer selectCountPopulation();

    /**
     * OCR识别
     * @param multipartFile 文件
     * @return 填充好的人口数据以及保存的附件信息
     */
    PopulationRespVO OCRPopulation(MultipartFile multipartFile);
}
